package de.fhluebeck.oop.gps.gui;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import de.fhluebeck.oop.gps.common.Constants;
import de.fhluebeck.oop.gps.common.DependencyManager;
import de.fhluebeck.oop.gps.service.IDatabaseService;
import de.fhluebeck.oop.gps.service.IWSExportService;

/**
 * 
 * Einstiegspunkt zum Start der GUI Applikation
 * 
 * Vor dem Anzeigen der GUI wird die Datenbank initialisiert und der WebService exportiert.
 * 
 * @author Ogün Bilge, Leif Hitzschke
 * @version 1.00, 13.11.2009
 *
 */
public class Gps {
	private final static Logger log = LoggerFactory.getLogger(Gps.class);

	private void initialize() {

		// add Database check here;
		((IDatabaseService) DependencyManager
				.locate(Constants.DATABASE_SERVICE_DEP_NAME)).initDatabase();
		// export WebServices
		((IWSExportService) DependencyManager
				.locate(Constants.WSEXPORT_SERVICE_DEP_NAME)).export();

	}

	private void execute() {
		initialize();
		new GpsView();
	}

	public static void main(String[] args) {
		try {
			new Gps().execute();
		} catch (Exception e) {
			log.error("error, exiting application, {}" , e.getMessage());
			e.printStackTrace();
			System.exit(1);
		}
		

	}
}
